package homework.day03;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * 将当前目录下的所有文件都复制一份，复制的文件命名为:
 * 原文件名_cp.后缀
 * 比如原文件为:test.dat
 * 复制后的文件为:test_cp.dat
 * 
 * 
 * @author Xiloer
 *
 */
public class Test03 {
	public static void main(String[] args) throws IOException {
		File dir = new File(".");
		if(dir.isDirectory()){//是否为一个目录
			//获取该目录中的所有[文件]
			File[] subs = dir.listFiles((f)->f.isFile());
			//遍历每一个文件进行复制
			for (int i=0;i<subs.length;i++){
				File file = subs[i];//获取每一个要复制的文件

				String fileName = file.getName();
				//test1.dat  在文件名最后一个"."之前插入一个"_cp"
				StringBuilder builder = new StringBuilder(fileName);
				builder.insert(builder.lastIndexOf("."),"_cp");
				fileName = builder.toString();//要复制的文件名
				//完成复制操作
				RandomAccessFile src = new RandomAccessFile(file,"r");
				RandomAccessFile dest = new RandomAccessFile(fileName,"rw");
//				int d;
//				while((d = src.read())!=-1){
//					dest.write(d);
//				}

				byte[] data = new byte[1024*10];
				int len;
				while((len = src.read(data))!=-1){
					dest.write(data,0,len);
				}
				src.close();
				dest.close();

			}
		}
	}
}




/**
 * 思路:
 * 分为几部分考虑.
 * 第一个是要获取到当前目录中的所有文件(思考哪个API可以解决)
 * 第二个是获取到的每一个文件都要复制(复制用什么API)
 * 第三个是复制的文件名，如何重新组建xxx_cp.xxx的名字?
 *      这里要将原文件名拆开后想办法拼接_cp.
 */


